Today, individuals use a variety of computer devices or systems on a regular basis. Accordingly, it is often desirous to keep information synchronized between devices. For example, individuals often have a desktop personal computer (PC) and/or associated file server with which they interact at work. They oftentimes also have a notebook/laptop computer for working away from the office as well as one or more desktop computers at home. Furthermore, they may have handheld computers such as a personal digital assistant (PDA), pocket PC, mobile phone (e.g., smart-phone) and/or other portable device they utilize for organizational, communication, and/or entertainment purposes. It is typically desirous for at least some data to be copied or synchronized between multiple devices to enable convenient access thereto.
For instance, often a user copies (or synchronizes) files from a desktop computer or file server to a portable computer or device for use while the user is away from their office. Thereafter, the user likely modifies or adds some new files while away from the office and subsequently desires to copy (or synchronize) these files to the desktop computer or file server when they return to the office. Similarly, in another example, users may wish to copy pictures or music from one device to another (e.g., computer to MP3 player, digital camera to computer . . . ). Still further, users may demand that personal preferences and contacts (e.g., address book) be maintained across all or a subset of their computers. Thus, many scenarios exist where certain files need to be synchronized across multiple computers or devices.
In its simplest form, synchronization is merely the task of causing designated files or data from multiple devices or systems to become the same or consistent across all or a subset of the devices. Typically, this means that the most current file versions are used to copy to a store. This process is most often automated by two-way, peer-to-peer, synchronization software applications. In particular, upon receipt, a synchronization application can analyze a set of information and detect file changes or additions in comparison to resident data within a first device. Thereafter, altered or new data can be copied or replicated to a second device communicatively coupled to the first device, for instance via a hard-wired or wireless connection. Of course, conflict detection and/or resolution schemes can be applied to ensure accuracy of data.
This causes the files on the first device to be synchronized with files on the second device. Synchronization can also be performed remotely by accessing a network having a first device such as desktop computer coupled thereto. A second device such as a second desktop computer or laptop computer can be synchronized with the first device utilizing synchronization software. Unfortunately, today's synchronization applications do not conform to today's ever-growing desire to increase mobility. In other words, conventional synchronization applications require an excessive amount of bandwidth as complete sets of information are often sent from one device to another in order to determine changes by which to synchronize.